package edu.nf.supermarket.config;

import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import edu.nf.supermarket.consts.AlipayConfigEnum;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author yjj
 * @date 2025-05-21
 */
@Configuration
public class AlipayConfig {
    private final AlipayConfigEnum config = AlipayConfigEnum.getInstance();

    /**
     * AlipayClient 是支付宝 SDK 提供的一个客户端接口，主要功能包括：
     * 发起 HTTPS 请求访问支付宝网关；
     * 对请求进行签名；
     * 对响应进行验签；
     * 处理异常和日志；
     * 常用的实现类就是 DefaultAlipayClient
     *
     * @return
     */
    @Bean
    public AlipayClient alipayClient() {
        return new DefaultAlipayClient(
                config.getGatewayHost(),          // 网关地址
                config.getAppId(),                // 应用ID
                config.getMerchantPrivateKey(),     // 商户私钥
                "json",
                "UTF-8",
                config.getAlipayPublicKey(),        // 支付宝公钥
                config.getSignType()              // 签名类型
        );
    }


}
